﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace csis.ImmediatorClasses
{
	public class CompilerOptions
	{
		public CompilerOptions()
		{
			this.ReferencedAssemblies = new List<string>();
			this.InputFiles = new List<string>();
		}

		/// <summary>
		/// Specifies the files that should be immediated.
		/// </summary>
		public List<string> InputFiles { get; private set; }
		/// <summary>
		/// Gets a list of additional referenced assemblies required 
		/// to compile the script.
		/// </summary>
		public List<string> ReferencedAssemblies { get; private set; }
		/// <summary>
		/// Specifies the output file that is generated by the compiler.
		/// </summary>
		public string OutputFile { get; set; }
		/// <summary>
		/// Sets the warning level of the compiler (0 - 4).
		/// 0: No warnings
		/// 4: All warnings
		/// </summary>
		public int CompilerWarningLevel { get; set; }
		/// <summary>
		/// Suppress the csis preprocessor.
		/// </summary>
		public bool NoPreprocessor { get; set; }
		/// <summary>
		/// Speicifes the action that will be notified when compiler errors have
		/// occurred. This can be used to display errors.
		/// Handler will be called with an empty list as argument if no
		/// errors occurred.
		/// </summary>
		public Action<List<CompileError>> CompilerErrorHandler { get; set; }

		public bool ScriptHelpers { get; set; }
	}
}
